package com.dhcc;

import org.junit.Test;
import org.kie.api.KieServices;
import org.kie.api.runtime.KieContainer;
import org.kie.api.runtime.KieSession;

public class DroolsTest1 {

	@Test
	public void testDrools1() {
		// 1、获取KieService
		KieServices kieServices = KieServices.Factory.get();
		// 2、从KieService中获取KieContainer
		KieContainer kieContainer = kieServices.newKieClasspathContainer();
		// 3、从KieSession中获取KieSession
		KieSession kieSession = kieContainer.newKieSession();
		// 4、通过kieSession插入规则引擎的工作内存中
		// 创建fact对象
		Order order = new Order();
		// 设置原始价格 
		order.setOriginalPrice(130D);
		kieSession.insert(order);
		System.out.println("规则执行前，优惠前的价格="+order.getOriginalPrice());
		System.out.println("规则执行前，优惠后的价格="+order.getRealPrice());
		System.out.println("===================");
		// 5、激活规则，由Drools框架自动匹配规则，并自动执行规则
		kieSession.fireAllRules();
		System.out.println("===================");
		// 6、关闭会话
		kieSession.dispose();
		System.out.println("规则执行后，优惠前的价格="+order.getOriginalPrice());
		System.out.println("规则执行后，优惠后的价格="+order.getRealPrice());
	}
}
